using System;

namespace JGSY.CMS.LowCode.Platform.Application.DTOs
{
    /// <summary>
    /// 工作流版本数据传输对象
    /// 用于传输工作流版本信息，支持工作流的版本控制和历史管理
    /// 包含版本标识、步骤定义、条件规则等核心版本信息
    /// </summary>
    public class WorkflowVersionDto
    {
        /// <summary>
        /// 版本标识符
        /// 工作流版本的唯一标识符
        /// </summary>
        public long Id { get; set; }
        
        /// <summary>
        /// 工作流标识符
        /// 该版本所属的工作流ID
        /// </summary>
        public long WorkflowId { get; set; }
        
        /// <summary>
        /// 版本号
        /// 工作流的版本序号，递增数值
        /// </summary>
        public int Version { get; set; }
        
        /// <summary>
        /// 版本标签
        /// 用于标识版本的可选标签，如"v1.0"、"稳定版"等
        /// </summary>
        public string? Tag { get; set; }
        
        /// <summary>
        /// 工作流步骤
        /// 以JSON格式存储的工作流步骤定义
        /// </summary>
        public string Steps { get; set; } = string.Empty;
        
        /// <summary>
        /// 流转条件
        /// 以JSON格式存储的工作流条件规则
        /// </summary>
        public string Conditions { get; set; } = string.Empty;
        
        /// <summary>
        /// 版本描述
        /// 对该版本变更内容的详细说明
        /// </summary>
        public string? Description { get; set; }
        
        /// <summary>
        /// 创建者标识符
        /// 创建该版本的用户ID
        /// </summary>
        public long CreatedBy { get; set; }
        
        /// <summary>
        /// 创建时间
        /// 版本创建的时间戳
        /// </summary>
        public DateTime CreatedAt { get; set; }
    }
}
